A name (possibly followed by a
formal argument list) that is
equated to a text or symbolic expression to which it is to be
expanded (possibly with the substitution of {actual
arguments}) by a
macro expander.
The term "
macro" originated in early
assemblers, which
encouraged the use of
macros as a structuring and
information-hiding device. During the early 1970s,
macro
assemblers became ubiquitous, and sometimes quite as powerful
and expensive as
HLLs, only to fall from favour as improving
compiler technology marginalised
assembly language
programming (see
languages of choice). Nowadays the term is
most often used in connection with the
C preprocessor,
Lisp, or one of several special-purpose languages built
around a
macro-expansion facility (such as
TeX or
Unix's
troff suite).
Indeed, the meaning has drifted enough that the collective
"
macros" is now sometimes used for code in any special-purpose
application control language (whether or not the language is
actually translated by text expansion), and for
macro-like
entities such as the "keyboard
macros" supported in some text
editors (and
PC TSRs or
Macintosh INIT/CDEV keyboard
enhancers).
(1994-12-06)